home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 007a / albumdb.zip / README.CD < prev    next >
Text File  |  1991-07-23  |  6KB  |  153 lines

  1. SUMMARY:
  2.  
  3. This package implements a database for musical collections consisting of
  4. major items called albums and minor items called cuts.  An album
  5. consists of zero or more cuts.  A cut belongs to one and only one album.
  6.  
  7. A database is defined by a master file, which contains a list of data
  8. files.  Data files contain information about albums and optionally cuts
  9. within albums.  Cut information, if present, must immediately follow the
  10. information on albums.  For each database two key files are built: an
  11. Artist key file and a Title key file.  These are sorted alphabetically
  12. by key and contain the key string, the data file number (as defined by the
  13. master file), the album number (a sequential counter within the data
  14. file), and the location within the datafile of the beginning of the
  15. album record.
  16.  
  17. The package consists of two main programs: BLD_KEY, which builds the key
  18. files, and ALBUMS, which allows the user to retreive album information
  19. and assemble cuts for recording.
  20.  
  21. OBJECTIVES:
  22.  
  23. The objectives of the package were:
  24.     Use ASCII files for ease of editting and other processings
  25.     Avoid sequential searches of large text files.
  26.  
  27. DESIGN:
  28.  
  29. The database consists of the following files:
  30.     master file    One per database.
  31.             Contains a list of the album files and their format
  32.  
  33.     album files    At least one for each medium type (CD, cassette, record)
  34.             Contains a list of all albums and optionally cuts.
  35.  
  36.     index file    One per album file.
  37.             Contains seek locations to each album line (not cut)
  38.  
  39.     key files    Two per database (artist and title).
  40.             Contains key strings used for searching for each album,
  41.             its file and album number, and the seek location of
  42.             the album record.
  43.  
  44. The master file contains a list of all the files in the database.  You
  45. can have any number of databases.  A data file may be in any number of
  46. databases.  A master record is of the format:
  47.  
  48.     file-name|file-type
  49.  
  50. where file-name is the name of the file containing information on the albums,
  51. and file-type may be 'cd', 'record', or 'cassette'.  All albums within
  52. the file must be of the same type (because the format may be different).
  53.  
  54. The only album file format defined is CD:
  55.     artist|title|date(s)|label|number
  56.     <white space>cut-title|time|artist
  57.         ...
  58.  
  59. where:
  60.     artist & title are obvious
  61.     date is the date(s) of the recording
  62.     label is the label name (MCA, CBS, etc.)
  63.     number is the label manufacture's CD catalog number
  64.     cut-title and time are obvious
  65.     artist in cut line is only needed if different than album artist
  66.         (e.g. Various)
  67.  
  68. Actually, the cut-title lines are optional.  If they are included, the
  69. time is optional.
  70.  
  71. The absolute requirements at this point for the data are:
  72.     Album lines must be flush left.
  73.     Cut lines must begin with white space.
  74.     Empty lines may be used to signal sides within albums or tapes.
  75.  
  76. Right now, find_cassette and find_record simply call find_cd, but that
  77. could be changed.  Each of these routines are to return a vertical bar
  78. separated list of fields.  The only assumtion so far is that the first
  79. field is the artist and the second field is the album title.  This would
  80. allow each type of file to have a different format relatively transparent
  81. to the programs.
  82.  
  83. For example, to add support for a file in the cassette program format, a
  84. subroutine find_cassette would be written to:
  85.     Read the necessary header lines, depending on studio or concert
  86.     type.
  87.     
  88.     Leave the file positioned to the first cut line (which will start
  89.     with white space)
  90.     
  91.     Return to the caller a vertical bar separated string with artist and
  92.     title in that order.
  93.     
  94. Searches are done using key strings, which are built by translating all
  95. letters to lower case, removing everything except consonants, the letter
  96. U, and digits.  Double letters are eliminated.
  97.  
  98. For each database, two key files are created.  Each album will contain
  99. at least one record in each of the files.  Multiple artists (separated
  100. by a tilde (~) will cause an artist record to be created for each
  101. artist.)  The key files contains the keys for artist and title and the
  102. seek location of the album record.
  103.  
  104.     key-string|file-number|album-number|seek location
  105.  
  106. where:
  107.  
  108.     key-string is the key string used for searching
  109.     file-number is the number of the album file entry in the master file
  110.     album-number is a sequential number (starting w/ 1) for the album file
  111.     seek location is the location of the first line of the album record
  112.     
  113. CURRENT STATUS:
  114.  
  115. The following programs are working:
  116.     bld_key        reads the master file and produces key and index files
  117.     albums        Retreives albums by artist and/or title.  Assembles cuts
  118.             for recording sides of tape.
  119.                 
  120. To use the system, the following steps are required:
  121.  
  122. To print the database:
  123.     run bld_tbl to create a list of album titles.
  124.  
  125. To search for albums:
  126.     run bld_key to build index and key files.
  127.     sort key files using standard sort program
  128.     run albums to query the database and compile new tapes
  129.  
  130. Things not implemented yet:
  131.  
  132. When an album is retreived, the concept of a side is not retained.  This
  133. means that if you build a tape, the program will tell you what album to
  134. find the cut on, but not what side.
  135.  
  136. The routine to edit the albums selected for taping is not implemented. 
  137. This feature will allow you to make tapes of albums not in your
  138. database, as well as to change or supply times that are not in your
  139. database.  This means that you don't have to have all the cuts defined
  140. for an album before you use it to make a tape.
  141.  
  142. Additional album formats are not implemented.  The record and cassette
  143. formats have been defined, but are equivalent to CD format.
  144.  
  145. I don't build a key for cuts, nor do I support artist lookup for cut
  146. artists (e.g. you can look for various, but not for an artist on that
  147. album).  If support for cuts were implemented, searching for the cut
  148. artist would be a natural thing to do at the same time.
  149.  
  150. Lots of other things, I am sure.  I just haven't thought of them yet.
  151.  
  152. (c) Copyright 1991 by William R. Pringle
  153.